Version cont6

Die Version cont5 soll an die STL-Konventionen angepasst werden. Ersetzen Sie deshalb in den Funktionen push_front() und  push_xxx() die Zeigerparameter und in den Funktionen front() und back()  die Rückgabewerte durch Referenzen. Außerdem soll die Funktion empty() einen bool-Wert zurückliefern.

Das Iterieren über den Container soll nicht mehr mit einem Zeiger, sondern mit einem "Iterator-Objekt" durchgeführt werden. 

Definieren Sie dazu die Klasse iterator. Der Klassenname iterator beginnt im Gegensatz zu unseren Richtlinien mit einem Kleinbuchstaben, um Übereinstimmung mit den STL-Namen herzustellen.

class iterator
{
   T *pElem;
public:
   iterator(T * = NULL);
   iterator operator++(int);
   T &operator*() const;
   bool operator!=(const iterator &) const;
};

Die letzten 3 Operatorfunktionen erlauben es, iterator-Objekte wie normale Zeiger zu behandeln ("smart pointer", s. auch smartptr.cpp). Sind it1 und it2 Iteratorobjekte, dann wird mit

it1++ der "Zeiger" zum nächsten Element weitergeschaltet.
*it1 auf das Element zugegriffen, auf das der "Zeiger" zeigt.
it1 != it2 geprüft, ob die "Zeiger" auf verschiedene Objekte zeigen.

Nach Einführung von Iteratoren sollen die Funktionen begin() und end() natürlich iterator-Objekte und keine Zeiger mehr zurückliefern.

Die modifizierte Klasse TCont soll in tconarr2.hpp vereinbart und in tconarr2.cpp implementiert werden. Das modifizierte Testprogramm soll in tcont2.cpp abgelegt werden.

Das Programm entsteht also aus den folgenden Dateien:

t.h deklariert T und die I/O-Funktionen für T
intio.c definiert die I/O-Funktionen für T == int
tconarr2.hpp deklariert die modifizierte Klasse TCont
tconarr2.cpp implementiert die modifizierte Klasse TCont
tcont2.cpp Testprogramm